This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 2000-194744, filed Jun. 28, 2000, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a motion blur rendering method and apparatus for rendering a high resolution motion blur image in real time in a three-dimensional computer graphics (CG).
2. Description of the Related Art
Three-dimensional computer graphics (CG) is expanded in its applications year by year, is applied in a variety of fields, and achieves a variety of advantageous effects. Three-dimensional CG is roughly divided into two types. One type makes it possible to carry out three-dimensional CG processing using a predetermined sufficient time (when video image contents are produced by using three-dimensional CG, for example), and the other type requires three-dimensional CG processing in real time (when software such as game or simulation is executed, for example).
In a real time three-dimensional CG, there are provided various types of data including shape information or color information on polygons (triangles or polygonal shapes) for forming objects, each of which generally configures a three-dimensional space in advance (for example, stationary objects such as background or various types of objects such as movable objects represented by characters).
Here, an absolute coordinate system which a three-dimensional model has is referred to as a world coordinate system. The polygon vertex coordinate of each object is provided as a model, for example, in a (local) coordinate system specific to the object, and is converted into the world coordinate system by means of conversion processing. A stationary object can be expressed by the world coordinate system from the start. In addition, a display screen on a display is referred to as a screen, and its coordinate system is referred to as a screen coordinate system. An object existing in the world coordinate system is projected and rendered on the screen coordinate system (specified at a predetermined point of view).
During rendering, the following processes are generally carried out.
(1) The allocation or the like of each object in the world coordinate system at a predetermined timing is computed (with processing or the like being applied to such each object as required);
(2) The three-dimensional coordinate value of each vertex of a polygon in the world coordinate system is converted into a two-dimensional coordinate value when it is projected on the screen coordinate system, and color information on each vertex is computed;
(3) Depicting data is computed based on attribute information concerning the two-dimensional coordinate value of each vertex of each polygon in the screen coordinate system and the depth of each vertex or information concerning color, and an image for one screen is generated; and
(4) The thus generated image is converted into a video signal by means of a D/A converter, for example, and the converted signal is outputted to a television screen or the like.
These processes are repeatedly carried out with predetermined time intervals, whereby a motion image caused by three-dimensional CG is displayed. In addition, a user operates a point of view by using a controller or the like or moves a position of a specific character which is a base for determining the point of view, whereby an image is obtained so as to view a three-dimensional model at a desired position and angle or move the inside of the three-dimensional model.
As described above, in general, in a computer graphics apparatus, a still image is rendered with predetermined time intervals, and the rendered image is continuously viewed to be thereby recognized as a motion image with human eyes. However, in this method, in the case where a fast moving object is rendered, human eyes can sense that the positions of the same object are significantly different from each other between the adjacent screens. Because of this, such fast moving object is seen as strobe projected movement instead of smooth movement.
A technique for rendering a fast moving object with high resolution includes rendering an afterimage effect called xe2x80x9ca motion blurxe2x80x9d. This motion blur is very often used in computer graphics such as movies in which there is no need to compute an image in real time. However, in a conventional read time computer graphics apparatus, an image must be computed within a limited period of time, and thus, the motion blur has not been employed.
A method employed in a high performance, real time computer graphics apparatus in recent years is a technique called xe2x80x9cMulti-path Renderingxe2x80x9d in which still images at a plurality of times further segmented within a single frame time are computed and obtained, and these images are superimposed in one screen. With this method, a plurality of strobes are considered as being light emitted within a single frame time. In this method, an increased number of strobes within a single frame time can improve image quality more remarkably.
However, in this technique, there is a disadvantage that all the graphics processes including coordinate conversion are required by the number of strobes, and the number of computations required for rendering is increased in proportion to the number of strobes. In reality, although two or three strobes can be used within a single frame time, the boundary or end side of an object appears on an image, a smooth motion blur image is not produced, and a sufficient advantageous effect cannot be attained.
A motion blur technique for computing an afterimage effect is important in order to generate a speedier, more dynamic and realer motion image with real time computer graphics.
However, in the conventional technique xe2x80x9cMulti-path Renderingxe2x80x9d, there increases a computation amount of all the graphics processes including coordinate conversion processing caused by a CPU and a coordinate conversion/illumination calculator 93, and such high resolution motion blur cannot be computed.
The present invention has been made in order to solve the foregoing problem. It is an object of the present invention to provide a motion blur image rendering method and apparatus capable of high resolution motion blur by a smaller computation amount of rendering process.
According to the first aspect of the present invention, there is provided a motion blur image rendering method for a three-dimensional computer graphics, the method comprising: generating first information concerning three vertexes in a two-dimensional triangle image as an object at two points of time to obtain second information concerning six vertexes; dividing into three tetrahedrons a triangular prism formed by the six vertexes in a three-dimensional space defined by a pixel coordinate axis of the two-dimensional triangle image and a time axis; and subjecting each of the three tetrahedrons to linear processing to obtain rendering information for a motion blur image.
According to the second aspect of the present invention, there is provided a motion blur image rendering method for a three-dimensional computer graphics comprising: generating two-dimensional coordinate values of three vertexes of a two-dimensional triangle as an object at two points of time to acquire information concerning six vertexes and attribute information on each of the vertexes, the triangle being extracted from a projection image formed when a three-dimensional model is projected onto a two-dimensional plane; dividing into three tetrahedrons a triangular prism formed by the six vertexes in a three-dimensional space defined by pixel coordinate axes of the two-dimensional triangle and a time axis; and
subjecting each of the tetrahedrons to linear processing in the three-dimensional space using four vertexes extracted from among the six vertexes, the three-dimensional space being based on the two-dimensional coordinate values, the attribute information and the two points of time, to obtain rendering information for a motion blur image.
According to the third aspect of the present invention, there is provided a rendering apparatus rendering a motion blur image comprising: a generating device configured to generate information concerning three vertexes in a two-dimensional triangle image as an object at two points of time, to acquire information concerning six vertexes; a dividing device configured to divide into three tetrahedrons a triangular prism defined by the six vertexes in a three-dimensional space defined by a pixel coordinate axis and a time axis of the two-dimensional image; and a linear processing device configured to subject each of the three tetrahedrons to linear processing, to obtain rendering information for a motion blur image.
According to the fourth aspect of the present invention, there is provided a rendering apparatus rendering a motion blur image comprising: a generating device configured to generate two-dimensional coordinate values of three vertexes of a two-dimensional triangle as an object at two points of time to acquire information concerning six vertexes and attribute information on each of the vertexes, the two-dimensional triangle being extracted from a projection image formed when a three-dimensional model is projected onto a two-dimensional plane; a dividing device configured to divide into three tetrahedrons a triangular prism defined by the six vertexes in a three-dimensional space defined by a pixel coordinate axis of the two-dimensional image and a time axis; and a linear processing device configured to subject each of the tetrahedrons to linear processing in the three-dimensional space using four vertexes extracted from among the six vertexes and based on the two-dimensional coordinate values, the attribute information and the two points of time, to obtain rendering information for a motion blur image.
According to the fifth aspect of the present invention, there is provided a computer program stored on a computer readable medium for rendering a motion blur image in a three-dimensional computer graphics, the computer program comprising instruction means for instructing a computer to generate first information concerning three vertexes in a two-dimensional triangle image as an object at two points of time to obtain second information concerning six vertexes, instruction means for instructing the computer to divide into three tetrahedrons a triangular prism formed by the six vertexes in a three-dimensional space defined by a pixel coordinate axis of the two-dimensional triangle image and a time axis, and instruction means for instructing the computer to subject each of the three tetrahedrons to linear processing to obtain rendering information for a motion blur image.